﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using Kokomo.Environment.Commanding;

namespace Kokomo.Environment.Documents
{
	/// <summary>
	/// Represents a summary within the UI.
	/// </summary>
	/// <remarks>
	/// A summary may contain <see cref="Details"/> and <see cref="Commands"/>.
	/// </remarks>
	/// <seealso cref="DetailViewModel"/>
	/// <seealso cref="SummaryDetailItem"/>
	public class SummaryViewModel
	{
		/// <summary>
		/// Initializes a new instance of <see cref="SummaryViewModel"/>.
		/// </summary>
		/// <param name="heading">The heading.</param>
		public SummaryViewModel(
			UiString heading
			)
		{
			this.Heading = heading;

			this.Commands = new ObservableCollection<CommandViewModel>();
			this.Details = new ObservableCollection<SummaryDetailItem>();
		}

		/// <summary>
		/// Gets the heading.
		/// </summary>
		public UiString Heading { get; private set; }

		/// <summary>
		/// Gets the commands supported by the object.
		/// </summary>
		public ObservableCollection<CommandViewModel> Commands { get; private set; }
		/// <summary>
		/// Gets the details to display.
		/// </summary>
		/// <seealso cref="SummaryDetailItem"/>
		public ObservableCollection<SummaryDetailItem> Details { get; private set; }
	}
}
